define (require, exports, module) ->
  # 加载样式
  require 'mods/notice_list/notice_list_css.css'
  # 引入API服务
  notice_list_api = require 'mods/notice_list/notice_list_api'
  # 定义组件
  module.exports = Vue.extend

    # 组件模板
    template: require 'mods/notice_list/notice_list_tpl.js'

    # 定义变量
    data: () ->
      # 是否加载完成
      loadedSucc: false
      # 加载失败提示语
      loadedFail: ''
      # 公告列表数组
      notices: []
      # 点击查看更多
      viewMoreTxt: '查看更多'
      # 当前页码
      page: 1
      # 有无数据控制变量
      isHasData: false

    # 定义方法
    methods:

      # 插件加载
      pluginLoad: () ->
        self = @

      # 加载成功
      loadedSuccFunc: () ->
        self = @
        self.$nextTick () ->
          # 加载成功标识
          self.loadedSucc = true
          # 插件加载
          self.pluginLoad()

      gotoPage: (page) ->
        self = @
        self.page = parseInt page
        self.getNoticeList()

      # 获取公告列表
      getNoticeList: () ->
        self = @
        pageNum = parseInt(self.page) or 1

        # 查询公告列表参数
        params =
          pageNum: pageNum
          pageSize: 10

        return notice_list_api.getNoticeList params, self.$route.params.merchant_id
          .then (res) ->
            # 分页
            if self.notices.length == 0
              if res?.data?.data?.length != 0
                self.notices = res?.body?.data
                # 隐藏"暂无数据"提示
                self.isHasData = false
              else
                # 显示"暂无数据"提示
                self.isHasData = true
                # self.viewMoreTxt='已显示全部内容'
            else
              # 隐藏"暂无数据"提示
              self.isHasData = false

              if res?.body?.data?.length != 0
                for item in res?.body?.data
                  self.notices.push item
              else
                self.viewMoreTxt ='已显示全部内容'

            self.page = res?.body?.pageNum

            # 将发布时间日期格式转成YY-MM-DD
            for notice in self.notices
              notice.updated_at = notice.updated_at.substring 0, 10

            # 加载成功 - 处理函数
            self.loadedSuccFunc()

          .catch (err) ->
            console.log err

      # 公告详情页跳转
      toggleHref: (detail_id) ->
        self = @
        self.$router.push {name:'notice_detail', params: {'type': 'gg', 'detail_id': detail_id} }

    # 计算属性
    computed:

      # 加载中的样式
      loaddingClass: () ->
        self = @
        if self.loadedSucc
          return 'c-hidden'
        if self.loadedFail
          return 'c-hidden'
        return ''

      # 加载成功的样式
      loadedSuccClass: () ->
        self = @
        return if self.loadedSucc then '' else 'c-vhidden'

      # 加载失败的样式
      loadedFailClass: () ->
        self = @
        return if self.loadedFail then '' else 'c-hidden'

    # 组件初始化
    mounted: () ->
      self = @
      self.gotoPage self.page